package study.java.jdk.jdk8._3_comparator.comparing;

import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import study.java.jdk.jdk8.User;

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

@Slf4j
public class _2_comparingTest {

    List<User> userLt;

    @Before
    public void init() {
        User u1 = new User("1003");
        User u2 = new User("1002");
        User u3 = new User("1001");
        userLt = Arrays.asList(u1, u2, u3);
    }

    /**
     * @param keyExtractor  Function  （key提取器）
     * @param keyComparator Comparator（key比较器）
     */
    @Test
    public void test() {
        Comparator<User> comparator = Comparator.comparing(User::getCode,
                Comparator.reverseOrder());
        Collections.sort(userLt, comparator);
        userLt.forEach(d -> {
            log.info(">>>>>> {}", d.getCode());
        });
    }

//    /*
//     *
//     */
//    @Test
//    public void test3() {
//        Comparator<Lesson> comparator = Comparator.comparing(Lesson::getBeginTime,
//                Comparator.comparing(e -> {
//                    String[] times = e.split(":");
//                    return Integer.parseInt(times[0]) * 60 + Integer.parseInt(times[1]);
//                }));
//        Collections.sort(src, comparator);
//        log.info(">>>>>> {}", src);
//    }
//
//    //
//    @Test
//    public void test4() {
////        Map<String, List<User1>> src = null;
//        Comparator<Lesson> comparator = Comparator.comparing(Lesson::getBeginTime,
//                Comparator.comparing(e -> {
//                    String[] times = e.split(":");
//                    return Integer.parseInt(times[0]) * 60 + Integer.parseInt(times[1]);
//                }));
//        Collections.sort(src, comparator);
//        log.info(">>>>>> {}", src);
//    }
}
